Clase 2: Investigación reproducible

Derek Corcoran
"09/08, 2018"

¿Que es investigación reproducible?

  • Código, datos (Crudos) y texto entrelazados
  • en R: Rmarkdown (Rmd) y Rpresentation (Rpres) entre otros

Peng

Metas del día de hoy

  1. Primer commit en github
  2. Un código en un chunk
  3. Un inline code
  4. Una tabla en el Rmarkdown

Github

  • Como “Google Drive” o “Dropbox” para código
  • Control de cambios (Podemos volver a cualquier versión anterior)
  • En base a codigo (idealmente), pero hay GUIs
  • Cada proyecto es un repositorio

plot of chunk unnamed-chunk-2

Crear primer repositorio

  • Crearse cuenta en github.com
  • Crear repositorio en github

plot of chunk unnamed-chunk-3

Crear primer repositorio

plot of chunk unnamed-chunk-4

Copiar la url

plot of chunk unnamed-chunk-5

Volvamos a RStudio

  • Creamos un proyecto nuevo

plot of chunk unnamed-chunk-6

Pegamos la URL

plot of chunk unnamed-chunk-7

La nueva pestaña git

plot of chunk unnamed-chunk-8

Los "¿tres?" pasos de un repositorio

  • Git add: Agregar a los archivos que vas a guardar
  • Git commit: Guardar en el repositorio local (Mi computador)
  • Git push: Guardar en el repositorio remoto (En la nube)

Git Add

  • Sumar un archivo al repositorio
  • ¿Cuando no hacerlo?
    • Limite de un archivo de 100 Mb
    • Límite de un repositorio de un Gb

plot of chunk unnamed-chunk-9

Git commit

  • Con esto dices quiero guardar mis cambios en mi disco duro
  • Se guarda en tu repositorio local (Tu computador)

plot of chunk unnamed-chunk-10

Mensaje del commit

  • Debe ser relevante (ejemplo, no poner Version final ahora si)
  • Si te equivocas puedes restablecer a cualquier commit anterior (si sabes cual es)

plot of chunk unnamed-chunk-11

A guardar el repositorio (git push)

  • Con esto subes tu commit a la nube (queda respaldado)

plot of chunk unnamed-chunk-12

Reproducibilidad en R

Rep

  1. Una carpeta
    • Datos crudos (csv, xls, html, json)
    • Codigo y texto (Rmd, Rpres, shiny)
    • Resultados (Manuscrito, Pagina Web, App)

Crear un nuevo Rmarkdown

NewRMD

Partes de un Rmd

  1. Texto
  2. Cunks
  3. Inline code
  4. Cheat sheet Rmd
  5. El botón mágico Knit

NewRMD

Texto

Titulo

subtitulo

cursiva

negrita

link

# Titulo

## subtitulo

*cursiva*

**negrita**

[link](https://stackoverflow.com/users/3808018/derek-corcoran)

Chunks

Chunk

  • echo = T o F muestro o no codigo
  • message = T o F muestra mensajes de paquetes
  • warning = T o F muestra advertencias
  • eval = T o F evaluar o no el código
  • cache = T o F guarda o no el resultado
  • Para más opciones ver este link

Inline code

Inline

  • Código entrelazado en el texto
  • Para actualizar medias, máximos, mínimos
  • Valores de p, diferencias estadísticas
  • Pueden ser vectores, no tablas.

Ejemplo

Pueden copiar el codigo de el siguiente link, copiarlo en un archivo rmd, apretar knit y debieran ver algo como esto:

Terremotos

Ejercicio 1

  • Usando la base de datos iris crea un inline code que diga cuál es la media del largo del pétalo de la especie Iris virginica
    • solución:
    • la media para I. virginica es 5.552
    • “la media para I. virginica es "r mean((iris %>% filter(Species == "virginica”))$Petal.Length)“”

Empezemos a trabajar!!!

Arrr

Tablas: Kable y Stargazer

  • kable parte de knitr, tabla igual a lo ingresado
  • stargazer mas avanzado, comparación de modelos
  • otras opciones como texreg

Stargazer: Tablas resumen

  • Chunk debe estar en results: “asis”
  • Si es para html la opción debe estar en type = “html”
  • Si es para pdf la opción debe estar en type = “latex”
  • Se puede exportar tabla
library(stargazer)
stargazer(iris,type = "html")
StatisticNMeanSt. Dev.MinPctl(25)Pctl(75)Max
Sepal.Length1505.8430.8284.3005.1006.4007.900
Sepal.Width1503.0570.4362.0002.8003.3004.400
Petal.Length1503.7581.7651.0001.6005.1006.900
Petal.Width1501.1990.7620.1000.3001.8002.500

Stargazer: Resumen de modelos economía combustible 1

data("mtcars")
kable(head(mtcars))
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Stargazer: Resumen de modelos economía combustible 2

M1 <- lm(mpg~wt, data = mtcars)
M2 <- lm(mpg~hp, data = mtcars)
M3 <- lm(mpg~hp + wt, data = mtcars)
stargazer(M1, M2, M3, type ="html", single.row=TRUE)
Dependent variable:
mpg
(1)(2)(3)
wt-5.344*** (0.559)-3.878*** (0.633)
hp-0.068*** (0.010)-0.032*** (0.009)
Constant37.285*** (1.878)30.099*** (1.634)37.227*** (1.599)
Observations323232
R20.7530.6020.827
Adjusted R20.7450.5890.815
Residual Std. Error3.046 (df = 30)3.863 (df = 30)2.593 (df = 29)
F Statistic91.375*** (df = 1; 30)45.460*** (df = 1; 30)69.211*** (df = 2; 29)
Note:*p<0.1; **p<0.05; ***p<0.01

Armemos nuestras propias tablas!!!

Tabla

Meta del día de hoy

Piensen en una pregunta a resolver con sus datos